<script setup lang="ts">
import { onMounted } from 'vue'
import { useMenuStore } from './stores/menuStore'
import { useStore } from './stores/userInfo'
import { useRouter } from 'vue-router'

// 获取菜单store和路由
const menuStore = useMenuStore()
const userStore = useStore()
const router = useRouter()

// 应用初始化时，检查token有效性
onMounted(() => {
  // 获取用户信息
  const userStoreInfo = localStorage.getItem('user_info')
  const userInfo = userStoreInfo ? JSON.parse(userStoreInfo) : null
  
  // 如果本地存储中有token但实际状态不符，可能是token无效或已过期
  if (userInfo && userInfo.Token) {
    try {
      // 这里可以添加token验证逻辑
      // 如果在当前页面是登录页，则清除token信息，防止自动跳转
      if (window.location.pathname === '/' || window.location.pathname === '/login') {
        console.log('在登录页检测到token，但可能已失效，清除登录信息')
        localStorage.removeItem('user_info')
        localStorage.removeItem('access_token')
        // 重置store中的用户信息
        userStore.resetUserInfo()
      } 
      // 如果已经在其他页面且token有效，加载菜单
      else if (userStore.userinfo.usertoken && menuStore.menuList.length === 0) {
        console.log('检测到有效token，加载菜单数据')
        menuStore.fetchMenus()
      }
    } catch (error) {
      console.error('Token验证失败:', error)
      // 清除无效token
      localStorage.removeItem('user_info')
      localStorage.removeItem('access_token')
      userStore.resetUserInfo()
      // 重定向到登录页
      router.push('/')
    }
  }
})
</script>

<template>
  <header>

    <div class="wrapper">

      <nav>
      </nav>
    </div>
  </header>

  <RouterView />
</template>

<style scoped></style>
